home *** CD-ROM | disk | FTP | other *** search
Wrap
SSSSRRRROOOOTTTTMMMM((((3333SSSS)))) SSSSRRRROOOOTTTTMMMM((((3333SSSS)))) NNNNAAAAMMMMEEEE SSSSRRRROOOOTTTTMMMM, DDDDRRRROOOOTTTTMMMM - Applies a modified Givens plane rotation SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS Single precision Fortran: CCCCAAAALLLLLLLL SSSSRRRROOOOTTTTMMMM ((((_n,,,, _x,,,, _i_n_c_x,,,, _y,,,, _i_n_c_y,,,, _r_p_a_r_a_m)))) C/C++: ####iiiinnnncccclllluuuuddddeeee <<<<ssssccccssssllll____bbbbllllaaaassss....hhhh>>>> vvvvooooiiiidddd ssssrrrroooottttmmmm ((((iiiinnnntttt _n,,,, ffffllllooooaaaatttt *_x,,,, iiiinnnntttt _i_n_c_x,,,, ffffllllooooaaaatttt *_y,,,, iiiinnnntttt _i_n_c_y,,,, ffffllllooooaaaatttt *_r_p_a_r_a_m))));;;; Double precision Fortran: CCCCAAAALLLLLLLL DDDDRRRROOOOTTTTMMMM ((((_n,,,, _x,,,, _i_n_c_x,,,, _y,,,, _i_n_c_y,,,, _r_p_a_r_a_m)))) C/C++: ####iiiinnnncccclllluuuuddddeeee <<<<ssssccccssssllll____bbbbllllaaaassss....hhhh>>>> vvvvooooiiiidddd ddddrrrroooottttmmmm ((((iiiinnnntttt _n,,,, ddddoooouuuubbbblllleeee *_x,,,, iiiinnnntttt _i_n_c_x,,,, ddddoooouuuubbbblllleeee *_y,,,, iiiinnnntttt _i_n_c_y,,,, ddddoooouuuubbbblllleeee *_r_p_a_r_a_m))));;;; IIIIMMMMPPPPLLLLEEEEMMMMEEEENNNNTTTTAAAATTTTIIIIOOOONNNN These routines are part of the SCSL Scientific Library and can be loaded using either the ----llllssssccccssss or the ----llllssssccccssss____mmmmpppp option. The ----llllssssccccssss____mmmmpppp option directs the linker to use the multi-processor version of the library. When linking to SCSL with ----llllssssccccssss or ----llllssssccccssss____mmmmpppp, the default integer size is 4 bytes (32 bits). Another version of SCSL is available in which integers are 8 bytes (64 bits). This version allows the user access to larger memory sizes and helps when porting legacy Cray codes. It can be loaded by using the ----llllssssccccssss____iiii8888 option or the ----llllssssccccssss____iiii8888____mmmmpppp option. A program may use only one of the two versions; 4-byte integer and 8-byte integer library calls cannot be mixed. The C and C++ prototypes shown above are appropriate for the 4-byte integer version of SCSL. When using the 8-byte integer version, the variables of type iiiinnnntttt become lllloooonnnngggg lllloooonnnngggg and the <<<<ssssccccssssllll____bbbbllllaaaassss____iiii8888....hhhh>>>> header file should be included. DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN These routines apply the modified Givens plane rotation constructed by SSSSRRRROOOOTTTTMMMMGGGG/DDDDRRRROOOOTTTTMMMMGGGG. See the NOTES section of this man page for information about the interpretation of the data types described in the following arguments. These routines have the following arguments: PPPPaaaaggggeeee 1111 SSSSRRRROOOOTTTTMMMM((((3333SSSS)))) SSSSRRRROOOOTTTTMMMM((((3333SSSS)))) _n Integer. (input) Number of planar points to be rotated. If _n <= 0, these routines return without any computation. _x Array of dimension (_n-1) * |_i_n_c_x| + 1. (input and output) SSSSRRRROOOOTTTTMMMM: Single precision array. DDDDRRRROOOOTTTTMMMM: Double precision array. On input, array _x contains the _x-coordinate of each planar point to be rotated. On output, array _x contains the _x-coordinate of each rotated planar point. _i_n_c_x Integer. (input) Increment between elements of _x. If _i_n_c_x = 0, the results will be unpredictable. _y Array of dimension (_n-1) * |_i_n_c_y| + 1. (input and output) SSSSRRRROOOOTTTTMMMM: Single precision array. DDDDRRRROOOOTTTTMMMM: Double precision array. On input, array _y contains the _y-coordinate of each planar point to be rotated. On output, array _y contains the _y-coordinate of each rotated planar point. _i_n_c_y Integer. (input) Increment between elements of _y. If _i_n_c_x = 0, the results will be unpredictable. _r_p_a_r_a_m Array of dimension 5. (input) SSSSRRRROOOOTTTTMMMM: Single precision array. DDDDRRRROOOOTTTTMMMM: Double precision array. Contains rotation matrix information. These routines compute a planar rotation, with possible scaling or reflection, as follows: _ _ _ _ _ _ | x(i) | | h(1,1) h(1,2) | | x(i) | | y(i) | <-- | h(2,1) h(2,2) | | y(i) | - - - - - - for i=1 , , n where the matrix that contains the elements _h(1,1), _h(2,1), _h(1,2), and _h(2,2) is called a rotation matrix. The _r_p_a_r_a_m array determines the contents of the rotation matrix, as follows: The key parameter, _r_p_a_r_a_m(1), may have one of four values: PPPPaaaaggggeeee 2222 SSSSRRRROOOOTTTTMMMM((((3333SSSS)))) SSSSRRRROOOOTTTTMMMM((((3333SSSS)))) 1.0, 0.0, -1.0, or -2.0 If _r_p_a_r_a_m(1) = 1.0: _ _ _ _ | _h(_1,_1) _h(_1,_2) | = | _r_p_a_r_a_m(_2) _1._0 | | _h(_2,_1) _h(_2,_2) | | -_1._0 _r_p_a_r_a_m(_5) | - - - - and _r_p_a_r_a_m(3) and _r_p_a_r_a_m(4) are ignored. If _r_p_a_r_a_m(1) = 0.0: _ _ _ _ | _h(_1,_1) _h(_1,_2) | = | _1._0 _r_p_a_r_a_m(_4) | | _h(_2,_1) _h(_2,_2) | | _r_p_a_r_a_m(_3) _1._0 | - - - - and _r_p_a_r_a_m(2) and _r_p_a_r_a_m(5) are ignored. If _r_p_a_r_a_m(1)=-1.0 (rescaling case): _ _ _ _ | _h(_1,_1) _h(_1,_2) | = | _r_p_a_r_a_m(_2) _r_p_a_r_a_m(_4) | | _h(_2,_1) _h(_2,_2) | | _r_p_a_r_a_m(_3) _r_p_a_r_a_m(_5) | - - - - This is a full matrix multiplication. If _r_p_a_r_a_m(1) = -2.0: _ _ _ _ | _h(_1,_1) _h(_1,_2) | = | _1._0 _0._0 | = _I | _h(_2,_1) _h(_2,_2) | | _0._0 _1._0 | - - - - where _I is the _i_d_e_n_t_i_t_y _m_a_t_r_i_x. In this case, _r_p_a_r_a_m(2), _r_p_a_r_a_m(3), _r_p_a_r_a_m(4), and _r_p_a_r_a_m(5) are ignored. If _n <= 0, or if the rotation matrix is the identity matrix (for example, when _r_p_a_r_a_m(1) = -2.0), these routines return with no operation on input arrays _x and _y. NNNNOOOOTTTTEEEESSSS The following data types are described in this documentation: PPPPaaaaggggeeee 3333 SSSSRRRROOOOTTTTMMMM((((3333SSSS)))) SSSSRRRROOOOTTTTMMMM((((3333SSSS)))) TTTTeeeerrrrmmmm UUUUsssseeeedddd DDDDaaaattttaaaa ttttyyyyppppeeee Fortran: Array dimensioned _n xxxx((((nnnn)))) Integer IIIINNNNTTTTEEEEGGGGEEEERRRR (IIIINNNNTTTTEEEEGGGGEEEERRRR****8888 for ----llllssssccccssss____iiii8888[[[[____mmmmpppp]]]]) Single precision RRRREEEEAAAALLLL Double precision DDDDOOOOUUUUBBBBLLLLEEEE PPPPRRRREEEECCCCIIIISSSSIIIIOOOONNNN C/C++: Array dimensioned _n xxxx[[[[_n]]]] Integer iiiinnnntttt (lllloooonnnngggg lllloooonnnngggg for ----llllssssccccssss____iiii8888[[[[____mmmmpppp]]]]) Single precision ffffllllooooaaaatttt Double precision ddddoooouuuubbbblllleeee SSSSEEEEEEEE AAAALLLLSSSSOOOO IIIINNNNTTTTRRRROOOO____SSSSCCCCSSSSLLLL(3S), IIIINNNNTTTTRRRROOOO____BBBBLLLLAAAASSSS1111(3S) SSSSRRRROOOOTTTTMMMMGGGG(3S) IIIINNNNTTTTRRRROOOO____CCCCBBBBLLLLAAAASSSS(3S) for information about using the C interface to Fortran 77 Basic Linear Algebra Subprograms (legacy BLAS) set forth by the Basic Linear Algebra Subprograms Technical Forum. SSSSRRRROOOOTTTTMMMMGGGG(3S) for further details about the modified Givens transformation and array _r_p_a_r_a_m PPPPaaaaggggeeee 4444